/**
 * Created by Fernando on 10/11/2014.
 */

$('.btnStock').click(function(){
    var myTR = $(this).parent().parent();
    var prId = myTR.children("td[id=prId]").html();
    var tdStock = myTR.children("td[id=prStock]");
    $('#formStockProducto #pr_id').val(prId);

    var myUrl = Routing.generate('getProductoStock');

    var ajax = $.ajax({
        type: "post",
        url: myUrl,
        context: document.body,
        data: "id="+prId
    });

    ajax.done(function(){
        var jsonResponse = $.parseJSON(ajax.responseText);
        $('#stockProductoModal > div > div > .modal-body > .modal-title').html("");
        $('#modalStockTitle').html("Stock del producto " + jsonResponse['producto']);
        $('#formStockProducto #prodStock').val(jsonResponse['productoStock']);
        $('#formStockProducto #prodStockAlerta').val(jsonResponse['productoStockAlerta']);
    });
});

$('#stockProductoModal').on('hidden.bs.modal', function (e) {
    $('#formStockProducto').each(function(){
        this.reset();
    });

    $('#modalStockTitle').html("Stock del producto");
    $('#stockProductoModal > div > div > .modal-body > .modal-title').html('<i class=\"fa fa-circle-o-notch fa-spin\"></i>');
});

$('#btnGuardarStock').click(function(){

    var prId = $('#pr_id').val();
    var prStock = $('#prodStock').val();
    var prStockAlerta = $('#prodStockAlerta').val();
    var myUrl = Routing.generate('guardarStock');
    var dataString = "";

    $('#formStockProducto .form-control').each(function () {
        dataString += $(this).attr("name") + "=" + $(this).val() + "&";
    });

    var ajax = $.ajax({
        type: "post",
        url: myUrl,
        context: document.body,
        data: dataString
    });

    ajax.done(function(){

        $('#modalMensaje #modalMensajeTitle').text("Stock");
        $('#modalMensaje #modalMensajeText > p').text(ajax.responseText);

        $('#stockProductoModal').modal('hide');
        $('#modalMensaje').modal('show');
        $('#prStock'+prId).html(prStock);
        $('#prStockAlerta'+prId).html(prStockAlerta);

        if(parseInt(prStock) > parseInt(prStockAlerta))
        {
            $('#prStockAlerta'+prId).parent().removeClass();
            $('#prStockAlerta'+prId).parent().addClass('success');
        }
    });

    ajax.fail(function(){
        $('#modalMensaje #modalMensajeTitle').text("Tipo");
        $('#modalMensaje #modalMensajeText > p').text(ajax.responseText);

        $('#modalMensaje div:first-child div:first-child').removeClass('panel-success');
        $('#modalMensaje #modalMensajeText > p').removeClass('text-success');

        $('#modalMensaje div:first-child div:first-child').addClass('panel-danger');
        $('#modalMensaje #modalMensajeText > p').addClass('text-danger');

        $('#stockProductoModal').modal('hide');
        $('#modalMensaje').modal('show');
    });
});

$('#btnGuardarTipo').click(function(){
    var myUrl = Routing.generate('guardarNuevoTipo');
    var dataString = "";

    $('#formTipo .form-control').each(function () {
        dataString += $(this).attr("name") + "=" + $(this).val() + "&";
    });

    var ajax = $.ajax({
        type: "post",
        url: myUrl,
        context: document.body,
        data: dataString
    });

    ajax.done(function(){

        var jsonResponse = $.parseJSON(ajax.responseText);
        $('#modalMensaje #modalMensajeTitle').text("Tipo");
        $('#modalMensaje #modalMensajeText > p').text("Tipo " + jsonResponse['nuevo'] + " guardado!");

        $('#modalAgregarTipo').modal('hide');
        $('#modalMensaje').modal('show');

        $('#formProducto #producto_type > option').each(function(){
            $(this).remove();
        });

        $(jsonResponse['tipos']).each(function(){

            var o = new Option(this.tipo, this.value);
            $(o).html(this.tipo);
            $("#formProducto #producto_type").append(o);
        });
    });

    ajax.fail(function(){
        $('#modalMensaje #modalMensajeTitle').text("Tipo");
        $('#modalMensaje #modalMensajeText > p').text(ajax.responseText);

        $('#modalMensaje div:first-child div:first-child').removeClass('panel-success');
        $('#modalMensaje #modalMensajeText > p').removeClass('text-success');

        $('#modalMensaje div:first-child div:first-child').addClass('panel-danger');
        $('#modalMensaje #modalMensajeText > p').addClass('text-danger');

        $('#modalAgregarTipo').modal('hide');
        $('#modalMensaje').modal('show');
    });
});

$('#btnGuardarMarca').click(function(){
    var myUrl = Routing.generate('guardarNuevaMarca');
    var dataString = "";

    $('#formMarca .form-control').each(function () {
        dataString += $(this).attr("name") + "=" + $(this).val() + "&";
    });

    var ajax = $.ajax({
        type: "post",
        url: myUrl,
        context: document.body,
        data: dataString
    });

    ajax.done(function(){

        var jsonResponse = $.parseJSON(ajax.responseText);
        $('#modalMensaje #modalMensajeTitle').text("Marca");
        $('#modalMensaje #modalMensajeText > p').text("Marca " + jsonResponse['nueva'] + " guardada!");

        $('#modalAgregarMarca').modal('hide');
        $('#modalMensaje').modal('show');

        $('#formProducto #producto_brand > option').each(function(){
             $(this).remove();
        });

        $(jsonResponse['marcas']).each(function(){

            var o = new Option(this.marca, this.value);
            $(o).html(this.marca);
            $("#formProducto #producto_brand").append(o);
        });

    });

    ajax.fail(function(){
        $('#modalMensaje #modalMensajeTitle').text("Marca");
        $('#modalMensaje #modalMensajeText > p').text(ajax.responseText);

        $('#modalMensaje div:first-child div:first-child').removeClass('panel-success');
        $('#modalMensaje #modalMensajeText > p').removeClass('text-success');

        $('#modalMensaje div:first-child div:first-child').addClass('panel-danger');
        $('#modalMensaje #modalMensajeText > p').addClass('text-danger');

        $('#modalAgregarMarca').modal('hide');
        $('#modalMensaje').modal('show');
    });
});

$('#btnGuardarPrecio').click(function(){
    var myUrl = Routing.generate('guardarNuevoPrecio');
    var dataString = "";

    $('#formNuevoPrecio .form-control').each(function () {
        dataString += $(this).attr("name") + "=" + $(this).val() + "&";
    });

    var ajax = $.ajax({
        type: "post",
        url: myUrl,
        context: document.body,
        data: dataString
    });

    ajax.done(function(){

        $('#modalMensaje #modalMensajeTitle').text("Precios");
        $('#modalMensaje #modalMensajeText > p').text(ajax.responseText);

        $('#verPreciosModal').modal('hide');
        $('#modalMensaje').modal('show');
    });

    ajax.fail(function(){
        console.log(ajax.responseText);
    });

});

$('#fechaPicker .input-group.date').datepicker({
    language: "es",
    keyboardNavigation: false,
    format: "dd/mm/yyyy",
    forceParse: false,
    autoclose: true,
    todayHighlight: true
});

$('#verPreciosModal').on('hidden.bs.modal', function (e) {
    $('#formNuevoPrecio').each(function(){
        this.reset();
    });

    $('#tablePrecios tbody >tr').each(function(){
        $(this).remove();
    });
    $('#modalPreciosTitle').html("Precios");
    $('#tablePrecios tbody').prepend("<tr><td colspan=\"3\"><i class=\"fa fa-circle-o-notch fa-spin\"></i></td></tr>");
});

$('.btnVerPrecios').click(function() {

    var myTR = $(this).parent().parent();
    var prId = myTR.children("td[id=prId]").html();

    var myUrl = Routing.generate('verPreciosProducto');

    var ajax = $.ajax({
        type: "post",
        url: myUrl,
        context: document.body,
        data: "id="+prId
    });

    ajax.done(function(){
        var jsonResponse = $.parseJSON(ajax.responseText);
        var counter = 0;
        var stringTable = "";
        var prod = "";
        $.each(jsonResponse, function() {

            if(counter == 0)
            {
                prod = this.toString();
            }else{
                stringTable += "<tr><td>$"+this['pre_valor']+"</td><td>"+this['pre_desde']+"</td><td>"+this['pre_hasta']+"</td></tr>";
            }
            counter++;
        });

        $('#pr_id').val(jsonResponse['precio0']['pr_id']);
        $('#modalPreciosTitle').html("Pecios del producto " + prod);

        $('#tablePrecios tbody >tr').each(function(){
            $(this).remove();
        });

        $('#tablePrecios tbody').prepend(stringTable);
    });

    //esto sale cuando la response viene con error code != 200
    ajax.fail(function(){
       console.log("fallo!");
    });
});

$("#producto_precio").numeric();
$("#precioValor").numeric();
$("#prodStock").numeric();
$("#prodStockAlerta").numeric();

$('#btnGuardarProducto').click(function() {
    $('#btnGuardarProducto').html("<i class=\"fa fa-circle-o-notch fa-spin\"></i>");
    $('#btnGuardarProducto').prop( "disabled", true);
    var dataString = "";

    $('#formProducto .form-control').each(function () {
        dataString += $(this).attr("name") + "=" + $(this).val() + "&";
    });

    var myUrl = Routing.generate('guardarProductoYPrecio');

    var ajax = $.ajax({
        type: "post",
        url: myUrl,
        context: document.body,
        data: dataString
    });

    ajax.done(function(){
        $('#agregarProductoModal').modal('hide');
        resetFormProducto();
        $('#modalMensaje #modalMensajeText').text(ajax.responseText);
        $('#modalMensaje').modal('show');

        $('#btnGuardarProducto').html("Guardar Precio");
        $('#btnGuardarProducto').prop( "disabled", false);
    });

    ajax.fail(function(){
        $('#modalMensaje #modalMensajeTitle').text("Producto");
        $('#modalMensaje #modalMensajeText > p').text(ajax.responseText);

        $('#modalMensaje div:first-child div:first-child').removeClass('panel-success');
        $('#modalMensaje #modalMensajeText > p').removeClass('text-success');

        $('#modalMensaje div:first-child div:first-child').addClass('panel-danger');
        $('#modalMensaje #modalMensajeText > p').addClass('text-danger');

        $('#agregarProductoModal').modal('hide');
        $('#modalMensaje').modal('show');
    });
});

$('#agregarProductoModal').on('hidden.bs.modal', function (e){
    resetFormProducto();
});

function resetFormProducto()
{
    $('#formProducto').each(function(){
        this.reset();
    });
}

$('#modalAgregarMarca').on('hidden.bs.modal', function(e){
    $('#formMarca').each(function(){
        this.reset();
    });
});

$('#modalAgregarTipo').on('hidden.bs.modal', function(e){
    $('#formTipo').each(function(){
        this.reset();
    });
});